﻿#region 文件信息

/*----------------------------------------------------------------
//
// 文件名称：
// 文件功能描述：
// 设计要求：
//
// 文 件 名：    IOptions
// 创建者：      杨程
// 创建日期：	    2023/1/28 19:15:03

//----------------------------------------------------------------*/

#endregion

namespace Vampirewal.Core.Interface;

/// <summary>
/// 自定义配置文件接口
/// </summary>
public interface IOptions
{
}



/// <summary>
/// 自定义配置文件热重载接口
/// </summary>
/// <typeparam name="TConfig"></typeparam>
public interface IOptionsHotReload<TConfig>: IOptions
{
    /// <summary>
    /// 热重载
    /// </summary>
    /// <param name="config"></param>
    void HotReload(TConfig config);
}

/// <summary>
/// 自定义配置文件初始化接口
/// </summary>
/// <typeparam name="TConfig"></typeparam>
public interface IOptionsInit<TConfig> : IOptions
{
    /// <summary>
    /// 初始化
    /// </summary>
    /// <param name="config"></param>
    void Init(TConfig config);
}

/// <summary>
/// 自定义配置文件热重载初始化接口
/// </summary>
/// <typeparam name="TConfig"></typeparam>
public interface IOptionsHotReloadInit<TConfig> : IOptionsHotReload<TConfig>, IOptionsInit<TConfig>
{
    
}